package org.dxy.domain.event.mbom;

import lombok.AllArgsConstructor;
import lombok.Getter;

/**
 * MBOM事件类型枚举
 * @author dxy
 * @createTime 2025/9/10
 */
@Getter
@AllArgsConstructor
public enum MBOMEventTypeEnum {
    
    CREATED("MBOM_CREATED", "MBOM创建"),
    SYNCED_FROM_EBOM("MBOM_SYNCED_FROM_EBOM", "MBOM从EBOM同步"),
    UPDATED("MBOM_UPDATED", "MBOM更新"),
    SUBMITTED_FOR_REVIEW("MBOM_SUBMITTED_FOR_REVIEW", "MBOM提交审核"),
    APPROVED("MBOM_APPROVED", "MBOM审核通过"),
    REJECTED("MBOM_REJECTED", "MBOM审核拒绝"),
    RELEASED("MBOM_RELEASED", "MBOM发布"),
    ASSIGNED_TO_WORK_ORDER("MBOM_ASSIGNED_TO_WORK_ORDER", "MBOM分配给工单"),
    OBSOLETED("MBOM_OBSOLETED", "MBOM作废"),
    
    // 替代料相关事件
    SUBSTITUTE_MATERIAL_ADDED("SUBSTITUTE_MATERIAL_ADDED", "替代料添加"),
    SUBSTITUTE_MATERIAL_UPDATED("SUBSTITUTE_MATERIAL_UPDATED", "替代料更新"),
    SUBSTITUTE_MATERIAL_REMOVED("SUBSTITUTE_MATERIAL_REMOVED", "替代料移除"),
    SUBSTITUTE_MATERIAL_APPROVED("SUBSTITUTE_MATERIAL_APPROVED", "替代料审核通过"),
    SUBSTITUTE_MATERIAL_REJECTED("SUBSTITUTE_MATERIAL_REJECTED", "替代料审核拒绝"),
    SUBSTITUTE_MATERIAL_APPLIED_TO_WORK_ORDER("SUBSTITUTE_MATERIAL_APPLIED_TO_WORK_ORDER", "替代料应用到工单");
    
    private final String key;
    private final String description;
}